1. Field of the Invention
This invention generally relates to a control apparatus for a robot. This invention specifically relates to an apparatus designed so that a motor for actuating a joint in a robot is used in controlling movement of the robot.
2. Description of the Related Art
A typical multiple-joint industrial robot has a plurality of movable portions connected by joints. The movable portions or the joints are coupled via power transmission mechanisms with actuators such as direct-current servo motors. The movable portions or the joints can be rotated by drive torques transmitted from the motors. Generally, the typical robot has an operative end. Movement of the operative robot end is given by a resultant of movements of the movable portions. The motors are controlled by a computer-based circuit which operates in accordance with an operation program (a control program). The operation program is designed so that movement of the operative robot end will agree with desired movement or programmed movement.
Prior-art control of rotation of a joint in a robot is as follows. A rotary encoder associated with the output shaft of a joint drive motor outputs a signal representing the present angular position of the joint. The joint drive motor is controlled in response to the output signal of the rotary encoder and an instruction signal representing a command angular position (a desired angular potions) of the joint. The information of the present angular position of the joint is used as a feedback signal in the control of the joint drive motor. The control of the joint drive motor is based on a feedback basis so that the present angular position of the joint can be equal to the command angular position thereof.
This feedback control is implemented via a control unit (a computer-based circuit) which operates in accordance with an operation program. For the feedback control, the control unit executes the following steps.
The control unit determines a speed pattern on the basis of parameters read out from the operation program. When every sampling period of time has elapsed, the control unit calculates an angular position of the joint from the speed pattern which will occur at a moment following the present moment by one sampling period. The control unit sets the calculated angular position as a command angular position of the joint. The control unit is informed of the present angular position of the joint by the rotary encoder. The control unit compares the present angular position of the joint and the command angular position thereof. The control unit adjusts the speed of rotation of the joint drive motor in response to a result of the comparison so that the joint will reach the command angular position after a unit control time equal in length to one sampling period. As a result of this adjustment process, the joint operates in accordance with a speed pattern similar to the speed pattern determined according to the operation program.
Similarly, rotation of each of other joints in the robot is controlled. Thus, an operative end of the robot moves in accordance with the operation program.
A general robot is designed so that when a load torque of a joint drive motor exceeds a limit value such as a maximum allowable value, the motor is suspended for protection. Therefore, during a teaching process of making an operation program for the robot, operation speeds of joints are set so as to prevent joint drive motors from undergoing overload. It is troublesome to execute a teaching process while considering load torque limits of respective joint drive motors. Thus, the teaching process tends to be inefficiently implemented. Since the operation speeds of the joints are set so as to prevent the joint drive motors from undergoing overload, the torques of the motors remain below maximum allowable values in almost all operating conditions of the robot. However, in this case, the torques of the motors tend to be significantly lower than the maximum allowable values. Accordingly, mean operation speeds of the joints are relatively low, and work by the robot tends to spend a relatively long time (a relatively long tact time).
Japanese published unexamined patent application 5-138563 discloses a control apparatus for a robot which is designed to remove such a problem. Generally, the load on a joint drive motor peaks at a time point near the moment of end of acceleration of the motor or the moment of start of deceleration thereof. In the control apparatus of Japanese application 5-138563, to prevent the load torque of the motor from exceeding a limit value at time points near the moment of end of acceleration and the moment of start of deceleration, the acceleration and deceleration degrees of the motor are determined according to load conditions of the motor at its positions corresponding to the end of acceleration and the start of deceleration.
In the control apparatus of Japanese application 5-138563, since the acceleration and deceleration degrees of the motor are determined at the acceleration end position and the deceleration start position, the motor does not always exhibit its maximum capabilities. On the other hand, at operating positions except the acceleration end position and the deceleration start position, there is a chance that the capabilities of the motor will exceed a maximum level.
In the control apparatus of Japanese application 5-138563, the acceleration and deceleration degrees of a joint drive motor are determined at an acceleration end position and a deceleration start position for each of joints. This method is suited for a process (a PTP process) of setting a speed pattern joint by joint. However, this method can not be applied to the case of setting the trajectory (the locus) of an operative end of a robot. If it is applied, the trajectory of the operative end of the robot will deviate from a programmed trajectory or a desired trajectory.
Japanese published unexamined patent application 64-7105 corresponding to PCT application WO 89/00305 discloses a control system for a robot in which a drive motor for an arm of the robot is controlled under predetermined operating conditions. Specifically, the operating conditions are determined and data representative thereof are stored into a memory before the drive motor is powered to actuate the robot arm. In the control system of Japanese application 64-7105, the predetermined operating conditions include a speed condition and a time constant. During the determination of the operating conditions which is implemented before actual operation of the robot, a ratio between a load torque and a maximum output torque of the motor is calculated. When the calculated ratio is approximately equal to "1", an original speed condition and an original time constant are directly used in the operating conditions. When the calculated ratio appreciably exceeds "1", at least one of the speed condition and the time constant is changed in the direction of decreasing the ratio. As a result, the speed condition and the time constant finally used in the operating conditions correspond to a state where the load torque and the maximum output torque of the motor are approximately equal to each other.